package com.fx.ruankao.mapper;

import com.fx.ruankao.entity.PaperQuestion;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 试卷题目关联Mapper接口
 */
@Mapper
public interface PaperQuestionMapper {
    /**
     * 新增试卷题目关联
     * @param paperQuestion 试卷题目关联信息
     * @return 影响行数
     */
    int insert(PaperQuestion paperQuestion);

    /**
     * 根据ID删除试卷题目关联
     * @param id 关联ID
     * @return 影响行数
     */
    int deleteById(Long id);

    /**
     * 根据试卷ID删除试卷题目关联
     * @param paperId 试卷ID
     * @return 影响行数
     */
    int deleteByPaperId(Long paperId);

    /**
     * 根据题目ID删除试卷题目关联
     * @param questionId 题目ID
     * @return 影响行数
     */
    int deleteByQuestionId(Long questionId);

    /**
     * 更新试卷题目关联信息
     * @param paperQuestion 试卷题目关联信息
     * @return 影响行数
     */
    int update(PaperQuestion paperQuestion);

    /**
     * 根据ID查询试卷题目关联
     * @param id 关联ID
     * @return 试卷题目关联信息
     */
    PaperQuestion selectById(Long id);

    /**
     * 根据试卷ID查询题目列表
     * @param paperId 试卷ID
     * @return 试卷题目关联列表
     */
    List<PaperQuestion> selectByPaperId(Long paperId);

    /**
     * 批量插入试卷题目关联
     * @param paperQuestions 试卷题目关联列表
     * @return 影响行数
     */
    int batchInsert(@Param("paperQuestions") List<PaperQuestion> paperQuestions);
}